;(() => {
  //泛型

  // function join(x: string | number, y: string | number) {
  //   return `${x}${y}`
  // }
  function join<T>(x: T, y: T): string {
    return `${x}${y}`
  }
  join<number>(1, 1)

  // 泛型中数组的使用
  // function myFun<T>(params: T[]) {
  //   return params
  // }
  function myFun<T>(params: Array<T>) {
    return params
  }
  console.log(myFun<string>(['1']))
  function join1<T, K>(x: T, y: K): string {
    return `${x}${y}`
  }
  join1<number, string>(1, '222')
})()
